In many situations it is desirable to compress image or video data that is to be displayed on a monitor, television screen or even a projector because communication channels either have low bandwidth or are being shared for many different communication sessions so that each one has a limited bandwidth, for example over a network.
A known method of connecting a display device to a computer is to connect the display device to a USB socket on the computer, as all modern computers are provided with multiple USB sockets. This provides a simple connection topology, but requires additional hardware and software to be present since it is necessary to compress display data due to the relatively-low bandwidth of a USB connection. However, compression and the associated processing add a delay to the transmission of display data to the display device.
There may be specific portions of an image that have a higher quality-of-service requirement than other portions of an image even within the same displayed image. For example, some portions may be time-critical and need to be updated more regularly and/or reliably as the user will notice if they are delayed. For example, a clock must be updated every second exactly on time, whereas a warning indication must appear immediately and reliably so.
A common example of such a portion of an image is a cursor, which, in a conventional computer arrangement, is likely to be the user's main point of interaction with the computer. When the user moves a mouse, he or she expects to see an immediate reaction from the cursor and it is undesirable for the user to see a delay in the movement of the cursor, even if there is a delay in displaying movement or updating the rest of the image, since the user is usually focussing on the cursor at this time.
Conventionally, there are two methods by which a cursor icon is rendered to a display device: the so-called “hardware” and “software” methods.
The “hardware” method requires the cursor icon to be stored and transmitted separately to the main display data. This means that the cursor can be displayed more quickly, but can lead to poor synchronisation between the cursor and the main display data. The most noticeable example of this is window lag, in which a user is using the mouse to drag a window, and the cursor moves ahead of the window. This leads to a poor user experience.
The “software” method involves rendering the cursor icon as part of the main display data. This means that the cursor icon will always be moved and updated at the same rate as the main display data, but if there is lag in the rendering and transmission of the main display data there will be a delay in the movement of the cursor, which is likely to frustrate the user when the mouse is his or her main method of interaction with a computing device.
Since the cursor is the most common example of a time-critical user interface element, it is the only one which has any form of acceleration such as the “hardware” method. Other similar user interface elements must be transmitted as part of the main display data, with associated delays.
The invention seeks to mitigate at least some of these problems.